package ventanas;

import javax.swing.JButton;

import bean.Catalogo;
import controlador.InventarioController;
import recursos.MaestroInternalFrame;
import recursos.Sesion;
import recursos.TextFilterDocument;

import java.util.List;

import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JComboBox;

import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;

import java.awt.KeyboardFocusManager;

public class FIRegistroIngreso extends MaestroInternalFrame{
	private static final long serialVersionUID = 1L;
	private JScrollPane scpLog;
	private JTextArea txtLog;
	
	private JPanel pnlRegistro;
	private JLabel lblAlmacn;
	private JLabel lblInventariador;
	private JLabel lblZona;
	private JLabel lblUbicacin;
	private JLabel lblArtculo;
	private JLabel lblCantidad;
	private JButton btnRegistrar;
	private JTextField txtInventariador;
	private JTextField txtZona;
	private JTextField txtUbicacion;
	private JTextField txtArticulo;
	private JTextField txtCantidad;
	private JLabel lblAlmacen;
	private JComboBox<Catalogo> cboAlmacen;
	private TextFilterDocument tfdCantidad = new TextFilterDocument(TextFilterDocument.DIGITS, 15);
	private TextFilterDocument tfdZona = new TextFilterDocument(20);
	private TextFilterDocument tfdUbicacion = new TextFilterDocument(20);
	private TextFilterDocument tfdInventariador = new TextFilterDocument(10);
	private TextFilterDocument tfdArticulo = new TextFilterDocument(10);
	private JLabel lblArticulo;
	
	@SuppressWarnings("unchecked")
	public FIRegistroIngreso() {
		setVisible(true);
		setSize(1000, 300);
		setTitle(Sesion.titulo+"-"+Sesion.tifIngreso);
		setResizable(false);
		btnSalir.setVisible(true);
		toolBar.setVisible(true);
		btnSalir.setVisible(true);
		btnGuardar.setVisible(true);
		btnCancelar.setVisible(true);
		contenedorCenter.setLayout(null);
		getContentPane().setLayout(null);
		
		txtLog = new JTextArea();
		txtLog.append("Log de Registros\n");
		scpLog = new JScrollPane(txtLog);
		scpLog.setBounds(0, 135, 974, 130);
		getContentPane().add(scpLog);
		
		pnlRegistro = new JPanel();
		pnlRegistro.setBounds(0, 0, 974, 130);
		pnlRegistro.setLayout(null);
		getContentPane().add(pnlRegistro);

		lblAlmacn = new JLabel("Almac\u00E9n:");
		lblAlmacn.setBounds(10, 11, 83, 14);
		pnlRegistro.add(lblAlmacn);
		
		lblInventariador = new JLabel("Inventariador:");
		lblInventariador.setBounds(10, 39, 108, 14);
		pnlRegistro.add(lblInventariador);
		
		lblZona = new JLabel("Zona:");
		lblZona.setBounds(10, 67, 108, 14);
		pnlRegistro.add(lblZona);
		
		lblUbicacin = new JLabel("Ubicaci\u00F3n:");
		lblUbicacin.setBounds(418, 11, 108, 14);
		pnlRegistro.add(lblUbicacin);
		
		lblArtculo = new JLabel("Art\u00EDculo:");
		lblArtculo.setBounds(418, 39, 67, 14);
		pnlRegistro.add(lblArtculo);
		
		lblCantidad = new JLabel("Cantidad:");
		lblCantidad.setBounds(418, 64, 67, 14);
		pnlRegistro.add(lblCantidad);
				
		cboAlmacen = new JComboBox<Catalogo>();
		cboAlmacen.getEditor().getEditorComponent().setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,java.util.Collections.EMPTY_SET);
		cboAlmacen.setBounds(98, 8, 41, 20);
		
		pnlRegistro.add(cboAlmacen);
		
		txtInventariador = new JTextField();
		txtInventariador.setBounds(98, 36, 299, 20);
		txtInventariador.setDocument(tfdInventariador);
		txtInventariador.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                java.util.Collections.EMPTY_SET);
		pnlRegistro.add(txtInventariador);
		
		txtZona = new JTextField();
		txtZona.setBounds(98, 64, 299, 20);
		txtZona.setDocument(tfdZona);
		txtZona.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                java.util.Collections.EMPTY_SET);
		pnlRegistro.add(txtZona);
		
		txtUbicacion = new JTextField();
		txtUbicacion.setBounds(491, 8, 473, 20);
		txtUbicacion.setDocument(tfdUbicacion);
		txtUbicacion.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                java.util.Collections.EMPTY_SET);
		pnlRegistro.add(txtUbicacion);
		
		txtArticulo = new JTextField();
		txtArticulo.setFocusTraversalPolicyProvider(true);
		txtArticulo.setBounds(490, 36, 89, 20);
		txtArticulo.setDocument(tfdArticulo);
		txtArticulo.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                java.util.Collections.EMPTY_SET);
		pnlRegistro.add(txtArticulo);
		
		txtCantidad = new JTextField();
		txtCantidad.setBounds(490, 64, 89, 20);
		txtCantidad.setDocument(tfdCantidad);
		txtCantidad.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                java.util.Collections.EMPTY_SET);
		pnlRegistro.add(txtCantidad);
		
		lblAlmacen = new JLabel("");
		lblAlmacen.setBounds(152, 11, 245, 14);
		pnlRegistro.add(lblAlmacen);
				
		lblArticulo = new JLabel("");
		lblArticulo.setBounds(589, 39, 375, 14);
		pnlRegistro.add(lblArticulo);
		
		btnRegistrar = new JButton("Registrar");
		btnRegistrar.setBounds(418, 91, 89, 23);
		btnRegistrar.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
                java.util.Collections.EMPTY_SET);
		pnlRegistro.add(btnRegistrar);
					

	}
	
	public JButton getBtnSalir(){
		return btnSalir;
	}
	
	public JButton getBtnRegistrar(){
		return btnRegistrar;
	}
	
	public JTextField getTxtArticulo(){
		return txtArticulo;
	}
	
	public JTextField getTxtInventariador(){
		return txtInventariador;
	}
	
	public JTextField getTxtZona(){
		return txtZona;
	}
	
	public JTextField getTxtUbicacion(){
		return txtUbicacion;
	}
	
	public JTextField getTxtCantidad(){
		return txtCantidad;
	}
	
	public JComboBox<Catalogo> getCboAlmacen(){
		return cboAlmacen;
	}
		
	public void setAlmacen(String almacen){
		lblAlmacen.setText(almacen);
	}
	
	public void setArticulo(String articulo){
		lblArticulo.setText(articulo);
	}
	
	public void setAlmacenes(List<Catalogo> almacenes){
		for (Catalogo catalogo : almacenes) {
			cboAlmacen.addItem(catalogo);
		}
		AutoCompleteDecorator.decorate(cboAlmacen);
	}
	
	public String getInventariador(){
		return txtInventariador.getText().trim().toUpperCase();
	}
	
	public String getZona(){
		return txtZona.getText().trim().toUpperCase();
	}
	
	public String getUbicacion(){
		return txtUbicacion.getText().trim().toUpperCase();
	}
	
	public String getArticulo(){
		return txtArticulo.getText().trim().toUpperCase();
	}
	
	public String getDescripcionArticulo(){
		return lblArticulo.getText().trim();
	}
	
	public String getCantidad(){
		return txtCantidad.getText().trim();
	}
	
	public void addLog(String log){
		txtLog.append(log+"\n");
	}
	
	
	
	public void setControlador(InventarioController controlador){
		btnSalir.addActionListener(controlador);
		btnGuardar.addActionListener(controlador);
		btnCancelar.addActionListener(controlador);
		btnRegistrar.addActionListener(controlador);
			
		cboAlmacen.addItemListener(controlador);
		
		btnRegistrar.addKeyListener(controlador);
		cboAlmacen.getEditor().getEditorComponent().addKeyListener(controlador);
		txtInventariador.addKeyListener(controlador);
		txtZona.addKeyListener(controlador);
		txtUbicacion.addKeyListener(controlador);
		txtArticulo.addKeyListener(controlador);
		txtCantidad.addKeyListener(controlador);
		
	}
}
